using System.Collections.Generic;

namespace VideoStore.Common.Response.Interface
{
    /// <summary>
    /// Provides a minimal implementation of a WCF service response.
    /// </summary>
    public interface IResponse
    {
        /// <summary>
        /// Collection of errors
        /// </summary>
        List<Error> Errors { get; }

        /// <summary>
        /// Collection of messages
        /// </summary>
        List<Message> Messages { get; }

        /// <summary>
        /// The response was successful from the calling service.
        /// </summary>
        bool IsSuccessful { get; set; }
    }

    /// <summary>
    /// Interface for Typed Response
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public interface IResponse<T> : IResponse
    {
        /// <summary>
        /// Response object. Contains the actual response from the requested services
        /// </summary>
        T ResponseObject { get; set; }
    }
}